class Solution {
public:
    int romanToInt(string s) {
        unordered_map<char, int> map;
        map['I'] = 1;
        map['V'] = 5;
        map['X'] = 10;
        map['L'] = 50;
        map['C'] = 100;
        map['D'] = 500;
        map['M'] = 1000;
        int res = 0;
        int i;
        for(i = 0; i < s.size() - 1; i++)
        {
            if ((s[i] == 'I' || s[i] == 'X' || s[i] == 'C') && map[s[i + 1]] > map[s[i]])
            {
                res = res + map[s[i + 1]] - map[s[i]];
                i++;
            }
            else
                res += map[s[i]];
        }
        if (i == s.size() - 1)
            res += map[s[s.size() - 1]];
        return res;
    }
};
